// Seteo general function getSettings(obj){ return { flash_url : obj.url_final+"js/swfupload/swfupload.swf", upload_url: obj.url_final+"ajax/upload_swf.php", post_params: obj.post, file_size_limit : obj.peso, file_types : obj.tipos, file_types_description : "", file_upload_limit : obj.upload_limit, file_queue_limit : 0, custom_settings : { nombre : obj.nombre, div_aviso: obj.nombre+"_aviso", progressTarget : obj.upload_progress, cancelButtonId : "cancelar_archivos", peso_permitido : obj.peso, uploaded : false }, // Button settings button_image_url: obj.url_final+"img/btn90.png", button_width: "90", button_height: "22", button_placeholder_id: "boton_"+obj.nombre+"_swfu", button_text: ""+obj.texto_btn+"", button_text_style: ".theFont { text-align: center; width: 90px; font-family: Arial, Helvetica; }", button_action : obj.accion, debug: false, file_dialog_start_handler: fileDialogStart, file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : obj.file_dialog_complete_handler, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : obj.upload_complete_handler }; } // acción al inicio de selección de archivo function fileDialogStart() { $("#"+this.customSettings.div_aviso).html(""); $("#"+this.customSettings.div_aviso).removeClass("aviso"); this.cancelUpload(); } // acción al finalizar la selección de archivos directo function fileDialogComplete_directo(numFilesSelected, numFilesQueued) { try { if (numFilesSelected > 0) { $("#"+this.customSettings.cancelButtonId).removeAttr("disabled"); } this.startUpload(); } catch (ex) { this.debug(ex); } } // acción al finalizar la selección de archivos diferido function fileDialogComplete(numFilesSelected, numFilesQueued) { try { // activo el botón de cancelar if (numFilesSelected > 0) { $("#"+this.customSettings.cancelButtonId).removeAttr("disabled"); } } catch (ex) { this.debug(ex); } } // archivo en espera function fileQueued(file) { try { // barra de progreso var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre); progress.setStatus(""); progress.toggleCancel(true, this); // seteo el nombre del archivo a grabar $("input[name="+this.customSettings.nombre+"]").val(file.name); // borro archivo temporario anterior si existe if($("#"+this.customSettings.nombre+"_temporario").val()==""){ $("#"+this.customSettings.nombre+"_temporario").val(file.name); } else { archivo_a_borrar = $("#"+this.customSettings.nombre+"_temporario").val(); borro_temporario(archivo_a_borrar); // seteo el nuevo archivo $("#"+this.customSettings.nombre+"_temporario").val(file.name); } // BANDERAS // si el nombre del archivo original está vacío, entonces es un alta (1) if($("#"+this.customSettings.nombre+"_original").val()==""){ $("#"+this.customSettings.nombre+"_bandera").val(1); // si el archivo tiene el mismo nombre que el original entonces es reemplazo (3) } else if (file.name==$("#"+this.customSettings.nombre+"_original").val()){ $("#"+this.customSettings.nombre+"_bandera").val(3); $("#boton_"+this.customSettings.nombre+"_borrado").hide(); // si el archivo tiene distinto nombre que el original, entonces es modificación (2) } else { $("#"+this.customSettings.nombre+"_bandera").val(2); $("#boton_"+this.customSettings.nombre+"_borrado").hide(); } // fin discriminación de bandera } catch (ex) { this.debug(ex); } } // acción al iniciar la subida function uploadStart(file) { try { // oculto botones $(".botones").hide(); // apago las solapas /*if($("#solapas_tabs")){ $("#solapas_tabs").tabs( "option", "disabled", true ); }*/ // barra de progreso var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre); var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); var kb_subidos = Math.ceil(bytesLoaded / 1024)+" KB"; var kb_totales = Math.ceil(bytesTotal / 1024)+" KB"; var texto_status = ""; texto_status = texto_status.replace("{total}", 0); texto_status = texto_status.replace("{subidos}", 0); texto_status = texto_status.replace("{porcentaje}", 0); // limpio el previo $("#preview_"+this.customSettings.nombre).html(""); progress.setStatus(texto_status); progress.toggleCancel(true, this); } catch (ex) {} return true; } // acción de progreso de carga function uploadProgress(file, bytesLoaded, bytesTotal) { try { // apago las solapas /*if($("#solapas_tabs")){ $("#solapas_tabs").tabs( "option", "disabled", true ); }*/ // barra de progreso var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); var kb_subidos = Math.ceil(bytesLoaded / 1024)+" KB"; var kb_totales = Math.ceil(bytesTotal / 1024)+" KB"; var texto_status = ""; texto_status = texto_status.replace("{total}", kb_totales); texto_status = texto_status.replace("{subidos}", kb_subidos); texto_status = texto_status.replace("{porcentaje}", percent); var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre); progress.setProgress(percent); progress.setStatus(texto_status); } catch (ex) { this.debug(ex); } } // exito en la subida function uploadSuccess(file, serverData) { try { // muestro nuevamente botones $(".botones").show(); // prendo nuevamente las solapas /*if($("#solapas_tabs")){ $("#solapas_tabs").tabs( "option", "disabled", true ); }*/ // barra de progreso var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre); progress.setComplete(); // mensaje del servidor msg = serverData.split("||"); mensaje_servidor = ": "+msg[0]; progress.setStatus(mensaje_servidor); progress.toggleCancel(false); // cargo el mensaje $("input[name="+this.customSettings.nombre+"]").val(msg[1]); // cargo el previo this.customSettings.previo = msg[2]; } catch (ex) { this.debug(ex); } } // una vez que terminó la subida function uploadComplete_directo(file) { // cargo el previo $("#preview_"+this.customSettings.nombre).html(this.customSettings.previo); } // una vez que terminó la subida diferida function uploadComplete(file) { // chequeo la cantidad de archivos preparados if (this.getStats().files_queued > 0) { this.startUpload(); } else { this.customSettings.uploaded = true; $("#" + this.customSettings.cancelButtonId).attr("disabled","disabled"); var cadena_if = ""; for(i=1;i<=total_archivos;i++){ cadena_if = cadena_if + "swfu_" + archivos[i] + ".customSettings.uploaded === true"; if(i